This invention relates to wireless communication. More particularly, this invention provides a fast missing gap removing mechanism for the HSDPA (High Speed Downlink Packet Access) process in a wireless communication system.
The HSDPA process provides in-sequence delivery of data blocks—MAC-hs PDUs to upper layer. It also supports priority handling by allowing different data priority classes in the same transport channel. At one end of the HSDPA, the UTRAN uses a scheduler to schedule for all connected UEs within a cell. The scheduler determines the HARQ Entity (one per UE) and the priority class buffers to be served and schedules new transmissions and retransmission where a new transmission can be initiated on an HARQ process at any time. The UTRAN uses the HARQ Entity to set the priority class identifier based on priority class of the buffer being serviced. Also the UTRAN uses Transmission Sequence Number (TSN) to track sending and receiving data blocks. It increments TSN for each new data block within the same HS-DSCH and priority class. Depending on the number bits used to represent a TSN, which has a finite range of values. For example, in a 6-bit TSN system, the TSN value is among 0-63, which has an initial value of 0. Of course, the range of TSN value will be used repeatedly during the process of transmission of a plurality of data blocks that may cause ambiguity in certain situations. Moreover, the HARQ also processes the status report from the UE, which includes ACK/NACK from the receiver and passes all status to the scheduler. Meantime, each data block associates with an out-band 3-bit HARQ process identifier and contains an in-band 4-bit priority class identifier. The HARQ process identifier indicates which HARQ process the data block should be sent to. The priority class identifier indicates which reordering buffer the data block belongs to.
The UE provides data blocks in-sequence delivery to higher layers by temporarily storing the correctly received data blocks in one of the reordering buffers based on the data block's TSN and priority class accordingly. Logically, one buffer per priority class is needed to provide in-sequence delivery per priority class. The received data blocks are delivered to higher layers in-sequence, when a data block with TSN=SN and all data blocks with TSN in the reordering buffer up to and including SN has been received correctly. However, when a data block of lower TSN is missing from the particular reordering buffer, all received data blocks with higher TSN are kept in the reordering buffer and can't be delivered to high layer. This is so called a stall situation.
Several conditions cause a data block missed during the transmission leading to the stall situation: (1) The transmitter receives a NACK, instead of an ACK returned by the receiver, for a sent data block. Thus the UTRAN discards the acknowledged data block from the retransmission buffer and starts afresh with a new data block in the HARQ process. Retransmission of the discarded data block is left up to higher layers. (2) The retransmission of a data block is interrupted because the number of retransmission is exceeded the maximum retry, then the transmitter has options of either to resume retransmission of the data block at a later time or to discard the interrupted data block. (3) If a CRC error happened to a data block during transmission in the HS-SCCH that is detected, the UE receives no data and sends no status report. Of course, when the absence of the status report is detected, the UTRAN can retransmit the data block. (4) A data block can not be correctly encoded at the receiver and a NACK is reported, which a retransmission is expected in this case.
Usually, the reordering buffer will receive the missing data block caused by the Case (3) and the Case (4) described above because most likely the transmitter will retransmit the missing data block to the receiver again. The reordering buffer can deliver the expected in-sequence delivery data blocks in the reordering buffer when all data blocks with lower SN have been received. However, a missing data block caused by the Cases (1) and (2) would be permanently lost and the receiver cannot or will not receive the missing data block in a foreseeable time.
But occasionally some MAC-hs PDUs are lost during transmission that will cause the missing gap(s) in the reordering buffers of the receiver. Meanwhile if the transmitter already discarded these lost PDUs from its transmitting buffer and would not send them again, the receiver can't deliver other already received MAC-hs PDUs in the reordering buffers to upper layer. This constitutes a stall situation.
To avoid the stall situation, the system uses either a timer-based mechanism or a window based mechanism or both of them to manage the reordering buffers in the reordering entity. However, the prior art mechanism is not a fault-proof one. Two problems of the prior art mechanism can be further illustrated in detail. First, because the system supports many different priorities of communication classes. A transmission of a lower priority of data block can be interrupted by a request to transmit data blocks of higher priority class. Only after data blocks of higher priority class are all successfully transmitted, the interrupted low priority data block can resume its re-transmitting through a reinitiation process. In general, this will not cause problems.
For instance, the interrupted data block TSN=3 might have been correctly received by the receiver and an ACK was reported by the receiver but the transmitter erroneously recognized ACK as a NACK (negatively acknowledgment). This will cause TSN ambiguity problem. If the re-initiated TSN=3 is received, the receiver can not distinguish it to be a retransmitted data block so that the reordering entity might wrongly recognize it as belonging to the next cycle of TSN space. If this does happen, data blocks will be delivered out of sequence, which is not allowed in HARQ protocol.
Second, because a missing gap in a reordering buffer of the receiver can be removed only after the receiving window is updated to a higher position, the prior art mechanism will degrade the system transmission latency. For example, in a 6-bit TSN system with setting the window size=32. If there is a missing gap at TSN=5, this gap can be removed only after TSN>=37 is received, i.e. received data blocks with TSN=6 up to 31 will be held in the reordering buffer until TSN >=37 is received.
Furthermore, to define this invention we should explain the difference between the pre-emption allowed or not allowed systems first. Although the systems support priority handling by allowing different data priority classes in the same transport channel, this is done by allowing the transmission of the lower priority MAC-hs PDUs be interrupted by the transmission of the higher priority MAC-hs PDUs. However, in the pre-emption not allowed systems the interrupted MAC-hs PDUs won't be re-initiated for transmission by the transmitter. In general, the pre-emption not allowed systems will take the advantage of HARQ protocol by delaying the interruption from any higher priority MAC-hs PDUs until the current transmitted MAC-hs PDU is positively acknowledged. On the other hand, by allowing the interrupted MAC-hs PDUs re-initiated for transmission by the transmitter, these systems are pre-emption allowed systems.